const net = require('net')
 
export function isPortOccupied(app,port){
    var server = net.createServer().listen(port)
    return new Promise((resolve,reject)=>{
        // 如果监听成功，表示端口没有被其他服务占用，端口可用，取消监听，返回端口给调用者。
        server.on("listening",()=>{
            console.log('the server is running on port '+port)
            server.close()
            resolve(port)
        })
        // 如果监听出错，端口+1，继续监听，直到监听成功。
        server.on("error",(err)=>{
            if(err.code === 'EADDRINUSE'){
                resolve(isPortOccupied(port+1))
                console.log('this port '+ port+' is occupied try another.')
            }else{
                reject(err)
            }
        })
    })
}